This invention relates in general to the field of data correlation, and in particular to fast correlation of data in a received bit stream.
In communication receivers and pattern recognition systems, there is a general need for correlation of a pattern of received data with an expected pattern. As a particular example, a telephone with secure mode capability may be switched from voice to data modes upon receipt of appropriate data. A particular data bit stream correlated to an expected pattern may be used to signal the telephone to accept the appropriate data to change modes.
Traditional approaches to pattern recognition and correlation involve either hardware or software. Both methods essentially involve a bit-by-bit comparison of the received bit stream with the expected pattern, counting the number of bit errors resulting. Before an actual correlation can be made, however, the comparator must find the beginning of the received pattern. The beginning bit of the received bitstream pattern may be discernible by virtue of the communication mode employed, but, in many cases, the beginning bit of the received bitstream pattern to be correlated must be determined by the pattern correlator and correlation method.
Bit by bit comparison methods to correlate a received pattern to an expected pattern typically suffer the disadvantage of requiring a large number of components, if the correlation is done in hardware, or the disadvantage of relative slowness, if the correlation is accomplished in software. Software correlators are also not often readily adaptable to 8-bit, 16-bit, and 32-bit processors. Such "brute force" methods, in addition, do not take advantage if the bitstream data pattern to be correlated forms unique blocks.
Thus, it would be desirable to have a fast pattern correlator and method which does not require a relatively large number of components in hardware and which also requires a correlation of only a portion of an entire data bitstream pattern, thereby speeding up the correlation process. It would be additionally desirable to have such a correlator and method which is well suited for software implementations in bit lengths which a processor can handle efficiently (e.g., 8-bit, 16-bit, or 32-bit pieces). It would also be desirable to have a correlator and method which will detect a pattern even in the presence of bit errors.